package org.oschina.security;

/**
 * 认证接口
 */
public interface ISecurity {

	/**
	 * 登录
	 * @param authenticationInfo
	 * @throws AuthenticationException
	 */
	public Object login(AuthenticationInfo authenticationInfo) throws AuthenticationException;
	
	/**
	 * 登出
	 * @param token
	 * @return
	 */
	public boolean logout(String token);
	
	/**
	 * 获得当前登录信息
	 * @param token
	 * @return
	 */
	public Object getAuthenticationInfo(String token);

	/**
	 * 验证是否有相应权限
	 * @param authority
	 * @param token
	 * @param or
	 * @return
	 */
	public boolean require(String authority[],String token,boolean or);
	
	/**
	 * 密码处理
	 * @param password
	 * @return
	 */
	public String passwordFormat(String password);
}